home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 5
/
Apprentice-Release5.iso
/
Source Code
/
By the Book
/
Mac Pascal Primer, 4.0
/
Chap 3, Mondrian ƒ
/
Mondrian.p
next >
Wrap
Text File
|
1990-07-30
|
2KB
|
79 lines
program Mondrian;
const
BASE_RES_ID = 400;
var
gDrawWindow: WindowPtr;
gFillColor: LONGINT;
{--------------------------------> Randomize <---}
function Randomize (range: INTEGER): INTEGER;
var
rawResult: LONGINT;
begin
rawResult := Random;
rawResult := abs(rawResult);
Randomize := (rawResult * range) div 32768;
end;
{--------------------------------> RandomRect <---}
procedure RandomRect (var myRect: Rect; boundingWindow: WindowPtr);
begin
myRect.left := Randomize(boundingWindow^.portRect.right - boundingWindow^.portRect.left);
myRect.right := Randomize(boundingWindow^.portRect.right - boundingWindow^.portRect.left);
myRect.top := Randomize(boundingWindow^.portRect.bottom - boundingWindow^.portRect.top);
myRect.bottom := Randomize(boundingWindow^.portRect.bottom - boundingWindow^.portRect.top);
end;
{--------------------------------> DrawRandomRect <---}
procedure DrawRandomRect;
var
myRect: Rect;
begin
RandomRect(myRect, gDrawWindow);
ForeColor(gFillColor);
PaintOval(myRect);
end;
{--------------------------------> MainLoop <---}
procedure MainLoop;
begin
GetDateTime(randSeed);
gFillColor := blackColor;
while (not Button) do
begin
DrawRandomRect;
if (gFillColor = blackColor) then
gFillColor := whiteColor
else
gFillColor := blackColor
end;
end;
{--------------------------------> WindowInit <---}
procedure WindowInit;
begin
gDrawWindow := GetNewWindow(BASE_RES_ID, nil, WindowPtr(-1));
ShowWindow(gDrawWindow);
SetPort(gDrawWindow);
end;
{--------------------------------> Mondrian <---}
begin
WindowInit;
MainLoop;
end.